﻿using System;
using System.ComponentModel;

namespace ControleRepresentante.Logic.Models
{
    public class Permissao : ModelBase
    {
        public virtual Area Area { get; set; }
        public virtual Operacao Operacao { get; set; }
        public virtual User User { get; protected internal set; }
    }

    [Flags]
    public enum Operacao
    {
        None = 0,
        [Description("Exibir")]
        View = 1,
        [Description("Criar")]
        Create = 2,
        [Description("Editar")]
        Update = 4,
        [Description("Excluir")]
        Delete = 8,
        [Description("Imprimir")]
        Print = 16,
        [Description("Sincronizar")]
        Synchronize = 32,
        [Description("Comparar")]
        Compare = 64
    }

    public enum Area
    {
        Atributos,
        Vendedores,
        Clientes,
        [Description("Fábricas")]
        Fabricas,
        Transportadoras,
        Pedidos,
        [Description("Usuários")]
        Usuarios,
        [Description("Configurações")]
        Configuracoes,
        [Description("Sincronização")]
        Sync,
        [Description("Relatório de Visita")]
        RelatorioVisita,
        Produto,
        Mock,
    }
}